package com.own.component.common.base;

import lombok.Getter;
import lombok.Setter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * BaseParameterUtil
 *
 * @author chenxueli
 * @date 2021/3/4 11:08
 */
@Component
public abstract class BaseParameterUtil {

    /**
     * 缓存前缀
     */
    protected final static String PREFIX = "config:";

    @Getter
    @Setter
    @Value("${spring.profiles.active:dev}")
    private String env;

    /**
     * 获取参数
     *
     * @param key 获取的key
     * @return value信息
     */
    public String get(String key) {
        return get(key, env);
    }

    /**
     * 获取参数
     *
     * @param key 获取的key
     * @param env 运行环境
     * @return value信息
     */
    public abstract String get(String key, String env);

    /**
     * 获取参数
     *
     * @param key   获取的key
     * @param value 待存入的value
     */
    public void set(String key, String value) {
        set(key, value, env);
    }

    /**
     * 获取参数
     *
     * @param key   获取的key
     * @param value 待存入的value
     * @param env   运行环境
     */
    public abstract void set(String key, String value, String env);

    /**
     * 刷新所有的值
     */
    public void refresh() {
    }

}
